﻿#region Header

/*
Remote views based on linq
By

Pascal Hauser 
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

and

Raphael Gfeller
Dipl. Ing. in Informatik, Hochschule für Technik Rapperswil, 2006
Master Thesis, Hochschule für Technik Rapperswil, 2008-2010

*/

#endregion

#region Usings

#endregion

namespace Sebarf.Core.Interfaces {
	/// <summary>
	/// Defines a class that can handle request
	/// </summary>
	public interface IRequestHandler {
		#region Public Methods

		/// <summary>
		/// returns if the given request can be handled
		/// </summary>
		/// <param name="request"></param>
		/// <returns></returns>
		bool CanHandleRequest(IRequest request);

		/// <summary>
		/// process the given request
		/// </summary>
		/// <param name="request"></param>
		/// <param name="serviceLocator"></param>
		/// <returns></returns>
		object ProcessRequest(IRequest request, IServiceLocatorService serviceLocator);

		#endregion
	}
}